home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / Small_Data2054393172007.psc / Small DB engine 2 / clsExport.cls < prev    next >
Text File  |  2007-02-17  |  4KB  |  112 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsExport"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16. Public Function exportToSql(ByVal dbFile As String, ByVal dbAccess As String, ByVal outputFile As String)
  17.     Dim i As Long, j As Long, k As Integer, ffOP As Integer
  18.     Dim str_tmp As String, str_tmp2 As String
  19.     Dim mDB As New clsDatabaseEngine
  20.     Dim mRecSet As New clsRecordset
  21.  
  22.     If mDB.OpenDB(dbFile, dbAccess) = 0 Then
  23.         ffOP = FreeFile
  24.         Open outputFile For Output As #ffOP
  25.             'create table queryes
  26.             For i = 0 To mDB.TablesCount - 1
  27.                 str_tmp = "CREATE TABLE " & mDB.TableName(i) & " ("
  28.                 For j = 0 To mDB.ColCount(i) - 1
  29.                     If j > 0 Then
  30.                         str_tmp = str_tmp & ","
  31.                     End If
  32.                     '
  33.                     If mDB.PrimaryKey(i) = j Then
  34.                         str_tmp = str_tmp & "*"
  35.                     End If
  36.                     '
  37.                     For k = 0 To mDB.IndexedColumnsCount(i) - 1
  38.                         If mDB.IndexedColumn(i, k) = j Then
  39.                             str_tmp = str_tmp & "#"
  40.                         End If
  41.                     Next k
  42.                     
  43.                     str_tmp = str_tmp & mDB.ColName(i, j)
  44.                 Next j
  45.                 str_tmp = str_tmp & ")"
  46.                 Print #ffOP, str_tmp
  47.             Next i
  48.             'create records queries
  49.             For i = 0 To mDB.TablesCount - 1
  50.                 str_tmp = "INSERT INTO " & mDB.TableName(i) & " ("
  51.                 For j = 0 To mDB.ColCount(i) - 1
  52.                     If j > 0 Then
  53.                         str_tmp = str_tmp & ","
  54.                     End If
  55.                     str_tmp = str_tmp & mDB.ColName(i, j)
  56.                 Next j
  57.                 str_tmp = str_tmp & ") VALUES ("
  58.                 '
  59.                 Set mRecSet = mDB.OpenRecordSet("SELECT * FROM " & mDB.TableName(i))
  60.                 
  61.                 If mRecSet.Rows > 0 Then
  62.                     mRecSet.MoveFirst
  63.                     
  64.                     For j = 0 To mRecSet.Rows - 1
  65.                         str_tmp2 = str_tmp
  66.                         For k = 0 To mRecSet.Columns - 1
  67.                             If k > 0 Then
  68.                                 str_tmp2 = str_tmp2 & ","
  69.                             End If
  70.                             str_tmp2 = str_tmp2 & "'" & mRecSet.Fields(k) & "'"
  71.                         Next k
  72.                         str_tmp2 = str_tmp2 & ")"
  73.                         Print #ffOP, str_tmp2
  74.                         mRecSet.MoveNext
  75.                     Next j
  76.                     
  77.                 End If
  78.             Next i
  79.         Close #ffOP
  80.     End If
  81.     
  82.     Set mDB = Nothing
  83.     Set mRecSet = Nothing
  84. End Function
  85. '
  86. Public Function ImportSql(ByVal sourceFile As String, ByVal dbFile As String, ByVal dbAccess As String, Optional keep_IDs As Boolean = False) As Long
  87.     Dim mDB As New clsDatabaseEngine
  88.     Dim i As Long, ffOP As Integer
  89.     Dim str_tmp As String, str_tmp2() As String
  90.     
  91.     i = 0
  92.     If mDB.OpenDB(dbFile, dbAccess) = 0 Then
  93.         ffOP = FreeFile
  94.         Open sourceFile For Input As #ffOP
  95.             mDB.ForceWrite = keep_IDs
  96.             Do Until EOF(ffOP)
  97.                 Input #ff, str_tmp
  98.                 'naci redak s najvecim id-om i postaviti last id na taj
  99. '                If Left$(str_tmp, Len("CREATE TABLE")) = "CREATE TABLE" Then
  100. '
  101. '                    i = i + 1
  102. '                End If
  103.                 mDB.ExecuteSql str_tmp
  104.             Loop
  105.         Close #ffOP
  106.     End If
  107.     mDB.RefreshDB
  108.     mDB.CloseDB
  109.     Set mDB = Nothing
  110. End Function
  111.  
  112.